﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace Aga.GestionDeArchivos.Services
{
    [Serializable]
    [Flags]
    public enum Actions
    {
        [Display(GroupName = "None", Name = "Ninguna", Order = 0)]
        None = 0,

        // Users
        [Display(GroupName = "Usuarios", Name = "Ver Usuarios", Order = 1)]
        ViewUsers = 1,

        [Display(GroupName = "Usuarios", Name = "Crear Usuarios", Order = 2)]
        CreateUser = 2,

        [Display(GroupName = "Usuarios", Name = "Eliminar Usuarios", Order = 4)]
        DeleteUser = 3,

        [Display(GroupName = "Usuarios", Name = "Editar Usuarios", Order = 3)]
        EditUser = 4,

        // Roles
        [Display(GroupName = "Roles", Name = "Ver Roles", Order = 1)]
        ViewRoles = 5,

        [Display(GroupName = "Roles", Name = "Crear Roles", Order = 2)]
        CreateRoles = 6,

        [Display(GroupName = "Roles", Name = "Eliminar Roles", Order = 4)]
        DeleteRoles = 7,

        [Display(GroupName = "Roles", Name = "Editar Roles", Order = 3)]
        EditRoles = 8,

        // Clientes
        [Display(GroupName = "Clientes", Name = "Ver Clientes", Order = 1)]
        ViewClientes = 9,

        [Display(GroupName = "Clientes", Name = "Crear Clientes", Order = 2)]
        CreateClientes = 10,

        [Display(GroupName = "Clientes", Name = "Eliminar Clientes", Order = 4)]
        DeleteClientes = 11,

        [Display(GroupName = "Clientes", Name = "Editar Clientes", Order = 3)]
        EditClientes = 12,

        // Depositos
        [Display(GroupName = "Depositos", Name = "Ver Depositos", Order = 1)]
        ViewDepositos = 13,

        [Display(GroupName = "Depositos", Name = "Crear Depositos", Order = 2)]
        CreateDepositos = 14,

        [Display(GroupName = "Depositos", Name = "Eliminar Depositos", Order = 4)]
        DeleteDepositos = 15,

        [Display(GroupName = "Depositos", Name = "Editar Depositos", Order = 3)]
        EditDepositos = 16,

        // Estanterias
        [Display(GroupName = "Estanterias", Name = "Ver Estanterias", Order = 1)]
        ViewEstanterias = 17,

        [Display(GroupName = "Estanterias", Name = "Crear Estanterias", Order = 2)]
        CreateEstanterias = 18,

        [Display(GroupName = "Estanterias", Name = "Eliminar Estanterias", Order = 4)]
        DeleteEstanterias = 19,

        [Display(GroupName = "Estanterias", Name = "Editar Estanterias", Order = 3)]
        EditEstanterias = 20,

        //[Display(GroupName = "Guarda", Name = "Ver Etiquetas de Clientes", Order = 1)]
        //ViewEtiquetasClientes = 21,

        [Display(GroupName = "Guarda", Name = "Generar Etiquetas de Clientes", Order = 2)]
        GenerarEtiquetasCliente = 22,

        //[Display(GroupName = "Guarda", Name = "Reimprimir Etiquetas de Clientes", Order = 3)]
        //ReimprimirEtiquetasCliente = 23,

        [Display(GroupName = "Guarda", Name = "Imprimir Etiquetas de Ubicaciones", Order = 4)]
        ImprimirEtiquetasUbicaciones = 24,

        [Display(GroupName = "Guarda", Name = "Ingreso de Caja", Order = 5)]
        IngresoDeCaja = 25,

        [Display(GroupName = "Guarda", Name = "Egreso de Caja", Order = 6)]
        EgresoDeCaja = 26,

        [Display(GroupName = "Guarda", Name = "Traslado de Caja", Order = 7)]
        TrasladoDeCaja = 27,

        [Display(GroupName = "Guarda", Name = "Buscar Caja", Order = 8)]
        BuscarCaja = 28,

        [Display(GroupName = "Guarda", Name = "Salida Caja Cerrada", Order = 9)]
        SalidaCajaCerrada = 29,

        [Display(GroupName = "Guarda", Name = "Salida Documentación", Order = 10)]
        SalidaDocumentacion = 30,

        [Display(GroupName = "Guarda", Name = "Retorno Caja Cerrada", Order = 11)]
        RetornoCajaCerrada = 31,

        [Display(GroupName = "Guarda", Name = "Retorno Documentación", Order = 12)]
        RetornoDocumentacion = 32,

        [Display(GroupName = "Guarda", Name = "Remitos", Order = 13)]
        VerRemitos = 33,

        [Display(GroupName = "Clientes", Name = "Deshabilitar Clientes", Order = 5)]
        DisableClientes = 34,

        [Display(GroupName = "Guarda", Name = "Crear Remitos", Order = 14)]
        CreateRemito = 35,

        // Items

        [Display(GroupName = "Items", Name = "Ver Items", Order = 1)]
        ViewItems = 36,
        
        [Display(GroupName = "Items", Name = "Crear Items", Order = 2)]
        CreateItems = 37,
        
        [Display(GroupName = "Items", Name = "Editar Items", Order = 3)]
        EditItems = 38,
        
        [Display(GroupName = "Items", Name = "Eliminar Items", Order = 4)]
        DeleteItems = 39,

    }
}
